package com.projectm.common;

import com.mysql.cj.util.StringUtils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringUtil {
    /**
     * 判断单个字符串是否为空格组成的字符串或null，是则返回true，否则返回false。
     *
     * @param str
     * @return
     */
    public static boolean isEmptyOrNull(String str) {
        if (str == null || StringUtils.isEmptyOrWhitespaceOnly(str) || "".equals(str)) {
            return true;
        }
        return false;
    }

    /**
     * 判断多个字符串是否均为空格组成的字符串或null，是则返回true，否则返回false
     *
     * @param str
     * @return
     */
    public static boolean hasOneEmptyOrNull(String... str) {
        boolean isEmptyOrNull = false;
        for (String s : str) {
            isEmptyOrNull = isEmptyOrNull || isEmptyOrNull(s);
        }
        return isEmptyOrNull;
    }

    /**

     * @param str 待验证的字符串

     * @return 如果是符合邮箱格式的字符串,返回true,否则为false

     */

    public static boolean isEmail( String str ) {
        if (isEmptyOrNull(str)) {
            return false;
        }
        String regex = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";

        return match( regex ,str );

    }

    /**

     * @param str 待验证的字符串

     * @return 如果是符合网址格式的字符串,返回true,否则为false

     */

    public static boolean isHomepage( String str ){

        String regex = "http://(([a-zA-z0-9]|-){1,}\\.){1,}[a-zA-z0-9]{1,}-*" ;

        return match( regex ,str );

    }

    /**

     * @param regex 正则表达式字符串

     * @param str 要匹配的字符串

     * @return 如果str 符合 regex的正则表达式格式,返回true, 否则返回 false;

     */

    private static boolean match( String regex ,String str ){

        Pattern pattern = Pattern.compile(regex);

        Matcher matcher = pattern.matcher( str );

        return matcher.matches();

    }


}
